The present invention relates to techniques for obtaining network addresses from identifiers.
Various techniques have been proposed for operating a machine such as a router to obtain network addresses. A network address can then be used to obtain an associated action, such as access to a World Wide Web page.
The invention addresses problems that arise in using identifiers to obtain network addresses.
Examples of such identifiers are described in copending, coassigned U.S. Pat. application No. 09/276,085, entitled xe2x80x9cMarking Medium Area With Encoded Indentifier for Producing Action Through Networkxe2x80x9d, incorporated herein by reference. As described there, a substrate, such as a sheet or sticker of paper or a document, can bear visible or invisible markings that encode an identifier or the substrate and, in some cases, can also encode locations or zones within the substrate. The markings can, for example, be Xerox DataGlyphs. Such substrates are referred to hereinafter as xe2x80x9ccoded substratesxe2x80x9d.
Each coded substrate can have a digitally-stored counterpart, or xe2x80x9cdigital pagexe2x80x9d, accessible through a network using an address. The encoded substrate can bear a pid-code (pid stands for page-identifier) that identifies it uniquely world-wide and that could therefore also be used to locate the digital page. In general, the digital page can sit anywhere on a global network. The pid can be encoded in DataGlyphs (visibly or invisibly) on the surface of the page in such a way that a xe2x80x9cpointerxe2x80x9d equipped with a small camera can recover the pid by looking at a small circular area anywhere on the page. With coded substrates, however, the space needed for encoding on a physical page the network address of the digital page counterpart may be at a high premium.
For a coded substrate implementation, because the pid must be recovered from a small area, it is important that:
1. The pid is encoded using a small number of bits; and
2. The pid can address unambiguously any of a large number of digital pages.
The theoretically optimal scheme that satisfies these conditions is to use a small number of bits for the pid, say 64, and to use the pid to address 264 different digital pages. (To give an idea of how big this figure is: If every inhabitant of the Earth produced 80 thousand encoded substrates a day for the next century, a 64-bit pid would be sufficient to uniquely identify each encoded substrate and its counterpart digital page.)
Obviously, with such a scheme, there must be a way to map the pid recovered by the pointer into the network address of the counterpart digital page. Copending, coassigned U.S. Pat. application No. 09/276,085, entitled xe2x80x9cMarking Medium Area With Encoded Identifier for Producing Action Through Networkxe2x80x9d, describes a central router that contains a table of pairs (pid, address). The pointer can send a pid to the router and the router can send back the address to which the pointer can then connect to retrieve the relevant digital page.
Centralized routing schemes like this have two problems: First, the router may require huge tables for storing the (pid, address) pairs. Second, the number of requests per day to the router can be very large.
As a result of these problems, centralized routing can incur unrealistic address-storage and traffic-frequency costs at the central router""s site.
The present invention provides techniques that alleviate these problems. The techniques obtain a network address using an identifier. The identifier, which could be a page identifier as described above or any other appropriate identifier, indicates a value that identifies an action that can be produced through the network, and is therefore referred to herein as an xe2x80x9caction identifierxe2x80x9d. The techniques employ at least first and second machines. The first machine uses the action identifier to obtain a first network address for a set of two or more identifier values that includes the action identifier""s value. The first network address can be used to provide the action identifier to the second machine, which uses the action identifier to obtain a second network address for the action identifier""s value. The second network address, when provided on the network, produces the action identified by the value of the action identifier.
In one technique, a method provides the action identifier to the first machine, operates the first machine to obtain the first network address, uses the first network address to provide the action identifier to the second machine, and then operates the second machine to obtain the second network address. This technique divides the address storage requirement between the two machines, and can thus be used to alleviate the problem of address storage costs at a central router site. The first machine need only store sufficient data to obtain a network address for each set of identifier values, and the second machine need only store sufficient data to obtain a network address for its set of identifier values. The first machine can be a router and the second machine can be a server.
In one implementation, the action identifier can be a substrate identifier of a coded substrate, such as a page identifier, and the method can be implemented with a third machine that receives signals from image input circuitry, such as the pointer described above. To provide the action identifier to the first machine, the method can operate the image input circuitry to provide image signals defining an image of a region of the substrate to the third machine, where the region bears markings that encode the substrate identifier. The method can then operate the third machine to use the image signals to obtain the action identifier and use a third network address to provide the action identifier and a return network address to the router; the third network address can be the address of the router. The router can use the return network address to provide the first network address to the third machine, and the method can then operate the third machine to use the first network address to provide the action identifier and the return network address to the server. The server can use the return network address to provide the second network address to the third machine, and the third machine can then use the second network address to produce the action identified by the identifier""s value.
In another technique, which also divides the address storage requirement, an apparatus includes connection circuitry for providing a connection to the network and processing circuitry connected for providing signals to and receiving signals from the network through the connection circuitry. The processing circuitry operates to provide the action identifier through the connection circuitry to the first machine connected to the network. In response, the first machine uses the action identifier to obtain the first network address. The processing circuitry then uses the first network address to provide the action identifier through the connection circuitry to the second machine connected to the network. In response, the second machine uses the action identifier to obtain the second network address.
In these techniques, each set of identifier values can be a range of consecutive values, with lower and upper bounds indicated by data in the first machine.
The invention further provides techniques that allow data from the first machine to be stored for subsequent use without again providing an action identifier to the first machine. One such technique provides a method as described above, but in which the first machine also provides set data defining the set of identifier values that includes the action identifier; the third machine stores the set data and the first network address in memory so that it can subsequently access the first network address using any identifier value in the set of identifier values that includes the action identifier. Another such technique provides apparatus as described above, but further including memory; the first machine, in response to the action identifier, provides set data as above, and the processing circuitry of the apparatus stores the set data and the first network address in the memory so that the processing circuitry can subsequently access the first network address using any identifier value in the set of identifier values that includes the action identifier. These techniques make it possible to cache network addresses for frequently or recently encountered sets of identifier values at the client machine, and can thus be used to alleviate the problem of traffic frequency costs at a central router.
The invention is advantageous because it can be used in implementations with smaller and more efficient routing facilities. It can also be applied to capitalize on the tendency of publishers (responsible for printing on coded substrates) to buy coded substrates in bulk, as illustrated by the example below.
For the purpose of this illustration, it is assumed that a single company produces (prints) the coded substrates, i.e. coded sheets of paper, provides the central address routing, and sells the pointers for reading the coded sheets. It is also assumed that this company sells the coded sheets, not directly to end users, but to publishers (for instance book or journal publishers) who sell the printed pages (i.e. after printing with human-readable information, such as the text of an article) to end users. The company selling the coded sheets may thus be able to obtain revenues from several interrelated sourcesxe2x80x94sales of coded sheets to publishers, sales of central address routing services to publishers or end users, and sales of pointers to end users. The company may also be able to sell a publisher a range of consecutive identifier values, in effect promising to sell coded sheets with identifiers in that range only to that publisher. Then, the company""s central router can include an entry so that identifiers in the range are always mapped to the network address of the publisher""s server, so that the publisher can determine what actions are provided in response to those identifiers.
The invention is also advantageous because it can be implemented such that no address space is lost. For example, 64 bits of data encoded on a substrate can allow addressing of any of 264 digital pages.
Further advantages of the invention are that it allows a small number of bits encoded on the page to address a large number of digital pages, that it can be implemented to reduce or minimize hits on a central router, and that, in contrast with hierarchical internet addresses, no redundancy in the address codes is needed.
The following description, the drawings, and the claims further set forth these and other aspects, objects, features, and advantages of the invention.